﻿using System;
using System.Security.Cryptography;
using System.Text;

namespace Repository
{
    public static class Md5Helper
    {
        /// <summary>
        /// 将明文转换为大写MD5哈希值
        /// </summary>
        /// <param name="input">明文密码</param>
        /// <returns>32位大写MD5哈希字符串</returns>
        public static string ToMd5(string input)
        {
            if (string.IsNullOrEmpty(input))
                return string.Empty;

            // 创建MD5实例
            using (var md5 = MD5.Create())
            {
                // 将输入字符串转换为字节数组
                byte[] inputBytes = Encoding.UTF8.GetBytes(input);
                // 计算MD5哈希值（字节数组）
                byte[] hashBytes = md5.ComputeHash(inputBytes);
                // 将字节数组转换为十六进制字符串（大写）
                StringBuilder sb = new StringBuilder();
                foreach (byte b in hashBytes)
                {
                    sb.Append(b.ToString("X2")); // "X2"确保大写且补位（如0x0a显示为"0A"）
                }
                return sb.ToString();
            }
        }
    }
}